package com.nuanshui.heatedloan.fund.biz.dal.mapper;

import com.nuanshui.heatedloan.fund.model.UserFreezeFundAction;
import org.apache.ibatis.annotations.Param;


/**
 * 用户保证金相关操作
 * @ClassName: UserFreezeFundActionMapper 
 * @author guohao
 * @date 2016-02-20 
 * @since 2.4.0
 *
 */
public interface UserFreezeFundActionMapper {
	
	/**
	 * 保存保证金的相关操作
	 * @param 
	 * @author zhangqing
	 * @date 2016年2月17日 上午11:17:11
	 * @since 2.4.0
	 */
    void saveUserFreezeFundAction(UserFreezeFundAction userFreezeFundAction);
	
	/**
	 * 查询用户缴纳保证金的数额
	 * @param userId 用户Id
	 * @author zhangqing
	 * @date 2016年2月17日 下午12:02:00
	 * @since 2.4.0
	 */
    Long getUserFreezeFund(@Param("userId") String userId);
	
	/**
	 * 查询用户缴纳保证金的数额
	 * @param userId 用户Id
	 * @author zhangqing
	 * @date 2016年2月17日 下午12:02:00
	 * @since 2.4.0
	 */
    Long getUserAllFreezeFund(@Param("userId") String userId);
	
	/**
	 * 查询用户是否存在解冻中的保证金
	 * @param 
	 * @author zhangqing
	 * @date 2016年2月17日 下午4:57:00
	 * @since 2.4.0
	 */
    Long getUserFreezeFundStatus(@Param("userId") String userId);
	
	/**
	 * 查全两表ID
	 * @author Junyan2015
	 * @date 2016年2月20日 下午2:54:37
	 * @param freezeId
	 * @return
	 */
    Long getBizIdByFreezeId(@Param("freezeId") String freezeId);
	Long getFreezeIdByBizId(@Param("bizId") String bizId);
	
	/**
	 * 校验用户能否解冻保证金
	 * @author Junyan2015
	 * @date 2016年2月18日 上午10:36:00
	 * @param freezeId
	 * @return
	 */
    Integer validateUserCanbeUnFroozen(@Param("freezeId") String freezeId);
	
	/**
	 * 修改用户冻结资金的状态
	 * @author Junyan2015
	 * @date 2016年2月18日 上午10:49:52
	 * @param status
	 */
    void updateFreeFundActionStatus(@Param("freezeId") String freezeId, @Param("status") Integer status);
	
	/**
	 * 根据Id获得相应保证金记录
	 * @author Junyan2015
	 * @date 2016年2月20日 下午2:55:24
	 * @param freezeId
	 * @return
	 */
    UserFreezeFundAction getFreezeFundById(@Param("freezeId") String freezeId);
	
	/**
	 * 根据业务号获取某条资金信息
	 * @param 
	 * @author guohao
	 * @date 2016年2月23日 下午2:33:24
	 */
    UserFreezeFundAction loadFreezeFundByDealNum(@Param("dealNum") String dealNum);
	
	/**
	 * 更新冻结资金进入或者出去的渠道
	 * @param 
	 * @author guohao
	 * @date 2016年2月23日 下午2:45:17
	 */
    void updateFreezeFundPlatfrom(@Param("platform") String platform, @Param("id") String id);
}
